Skip to content

[1141] Add locale-aware display date adapter - #2743

Merged
Chris0Jeky merged 2 commits into
mainfrom
issue-1141/date-adapter
Sep 6, 2026
Merged

[1141] Add locale-aware display date adapter#2743
Chris0Jeky merged 2 commits into
mainfrom
issue-1141/date-adapter

Conversation

@Chris0Jeky

Copy link
Copy Markdown
Owner

Summary

  • add a pure adapter for locale-explicit instant date, date-time, and time formatting
  • keep persisted YYYY-MM-DD calendar keys on the existing UTC-safe due-date path
  • return null for absent, invalid, or calendar/instant type-mismatch input

Proof

  • red-first focused run failed before the new utility existed with the expected unresolved import
  • focused display-date suite: 12 passed
  • existing due-date suite with the adapter: 21 passed
  • explicit en/it/es locale, leap-day, invalid-input, and UTC/Pacific near-midnight coverage
  • npm run lint (8 pre-existing warnings, 0 errors)
  • npm run typecheck
  • npm run build (known ineffective dynamic-import warning only)
  • git diff --check

Refs #1141

No issue close or merge requested; this PR is intentionally left open for review.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Fresh-context review record (coordinator, 2026-09-06; read-only Opus 5 reviewer over the diff against the merge base; route: the standing D-12 rule for Codex-session PRs — review, fix MEDIUM+ in-PR, merge, disposition comment).

VERDICT: SHIP, nothing fixed in-PR. The adapter is new and unwired (no shipped surface changes), so the findings are contract traps for the future migration and are recorded on #1141 rather than fixed here.

Tracked for #1141: MEDIUM-1 — the guard routes only the naked YYYY-MM-DD form to the UTC-safe path, while the persisted due-date shape per dueDates.ts is an ISO DateTimeOffset, which is accepted and formatted in the browser zone (a UTC-5 user sees "Feb 28" for a Feb 29 due date, the exact shift dueDates.ts exists to prevent); MEDIUM-2formatDisplayCalendarDate returns null for that persisted form, so a like-for-like migration of CardItem.vue, PaperBoardCard.vue, useTodayDossier.ts blanks every due-date badge (pinned as intended by the spec, but undocumented); MEDIUM-3 (unverified) — dateStyle spread over year/month/day defaults throws in ECMA-402 and the catch swallows it to null. LOWs: no region resolution (the ADR-0054 en-GB regression); the spec computes expected with the same Intl call as the code (tautological) and assumes full-ICU Node.

@Chris0Jeky
Chris0Jeky merged commit 2f75273 into main Sep 6, 2026
35 checks passed
@Chris0Jeky
Chris0Jeky deleted the issue-1141/date-adapter branch September 6, 2026 11:53
@github-project-automation github-project-automation Bot moved this from Pending to Done in Taskdeck Execution Sep 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant